#ifndef MetalMaterial_hpp
#define MetalMaterial_hpp

#include "Material.hpp"

class MetalMaterial : public Material {
public:
	MetalMaterial(const Color &eta, const Color& k, const float roughness);

	static shared_ptr<Material> create(const Params& params);

	virtual shared_ptr<BSDF> getBSDF(const HitInfo& hit) const override;

private:
	Color m_eta;
	Color m_k;
	float m_roughness;
};

class ShinyMetalMaterial : public Material {
public:
	ShinyMetalMaterial(const Color &ks, const Color& kr, const float roughness);

	static shared_ptr<Material> create(const Params& params);

	virtual shared_ptr<BSDF> getBSDF(const HitInfo& hit) const override;

private:
	Color m_Ks;
	Color m_Kr;
	float m_roughness;
};


#endif /* MetalMaterial_hpp */